/**
 * 
 */
package testy.core;

import static org.junit.Assert.*;

import javax.swing.JOptionPane;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import baduga.core.Core_Exception;
import baduga.core.Core_Game_Cfg;

/**
 * @author Janek
 *
 */
public class Test__Core_Exception {
	
	
	Core_Exception exception2, exception;
	String tekst;

	/**
	 * @throws java.lang.Exception
	 */
	@Before
	public void setUp() throws Exception {
		
		tekst = "Bla ble blu";
		exception = new Core_Exception( tekst );
	}

	/**
	 * @throws java.lang.Exception
	 */
	@After
	public void tearDown() throws Exception {
		exception = null;
	}

	/**
	 * Test method for {@link baduga.core.Core_Exception#Core_Exception()}.
	 */
	@Test
	public final void t1TestCoreException() {
		exception2 = new Core_Exception();
		
		assertEquals("#1 Czy konstruktor wprowadził tekst", null, exception2.getMessage());
	}

	/**
	 * Test method for {@link baduga.core.Core_Exception#Core_Exception(java.lang.String)}.
	 */
	@Test
	public final void t2TestCoreExceptionString() {
		exception2 = new Core_Exception("Bla error");
		
		assertEquals("#1 Czy konstruktor wprowadził tekst", "Bla error", exception2.getMessage());
	}

	/**
	 * Test method for {@link baduga.core.Core_Exception#showMessage(int)}.
	 */
	@Test
	public final void t3TestShowMessage() {
		
		
		exception.showMessage(0);
		
		int result = JOptionPane.showConfirmDialog(
				null,
				"Proszę potwierdzić: pojawienie się okiena o treści:" + tekst,
				"Komunikat",
				JOptionPane.YES_NO_OPTION);
		
		
		
		exception.showMessage(1);
		
		assertEquals("Sprawdzenie czy pojawia się okno z treścią błędu ", 0, result);
		
		
		result = JOptionPane.showConfirmDialog(
				null,
				"Proszę potwierdzić: pojawienie się w konsoli napisu o treści: " + tekst,
				"Komunikat",
				JOptionPane.YES_NO_OPTION);
		
		assertEquals("Sprawdzenie czy w konsoli wypisuje się tekst z treścią błędu ", 0, result);
		
		
		
		
		Core_Game_Cfg.DEBUG_CFG[1] = 1;
		
		
		
	}
	
	
	
	/**
	 * Test method for {@link baduga.core.Core_Exception#showMessage(int)}.
	 */
	@Test
	public final void t3aTestShowMessage() {
		
		
		
		
		Core_Game_Cfg.DEBUG_CFG[1] = 1;
		
		exception.showMessage(0);
		
		int result = JOptionPane.showConfirmDialog(
				null,
				"Proszę potwierdzić: pojawienie się okiena o treści:" + tekst,
				"Komunikat",
				JOptionPane.YES_NO_OPTION);
		
		
		
		exception.showMessage(1);
		
		assertEquals("Sprawdzenie czy pojawia się okno z treścią błędu ", 0, result);
		
		
		result = JOptionPane.showConfirmDialog(
				null,
				"Proszę potwierdzić: pojawienie się w konsoli napisu o treści: " + tekst,
				"Komunikat",
				JOptionPane.YES_NO_OPTION);
		
		assertEquals("Sprawdzenie czy w konsoli wypisuje się tekst z treścią błędu ", 0, result);
		
		
		

		
		
		
	}

	/**
	 * Test method for {@link baduga.core.Core_Exception#showOwnMessage(java.lang.String, java.lang.String)}.
	 */
	@Test
	public final void t4aTestShowOwnMessage() {
		
		Core_Game_Cfg.DEBUG_CFG[1] = 1;
		
		exception.showOwnMessage(tekst, "Tytuł");
		
		int result = JOptionPane.showConfirmDialog(
				null,
				"Proszę potwierdzić: pojawienie się okna z tytułem 'Tytuł' oraz opisem " + tekst,
				"Komunikat",
				JOptionPane.YES_NO_OPTION);
		
		assertEquals("Test własnych komunikatów", 0, result);
	}


	
	/**
	 * Test method for {@link baduga.core.Core_Exception#showOwnMessage(java.lang.String, java.lang.String)}.
	 */
	@Test
	public final void t4TestShowOwnMessage() {
		
		exception.showOwnMessage(tekst, "Tytuł");
		
		int result = JOptionPane.showConfirmDialog(
				null,
				"Proszę potwierdzić: pojawienie się okna z tytułem 'Tytuł' oraz opisem " + tekst,
				"Komunikat",
				JOptionPane.YES_NO_OPTION);
		
		assertEquals("Test własnych komunikatów", 0, result);
	}

	/**
	 * Test method for {@link baduga.core.Core_Exception#showMessageDebug(int)}.
	 */
	@Test
	public final void t5TestShowMessageDebug() {
		exception.showMessageDebug(0);
		
		int result = JOptionPane.showConfirmDialog(
				null,
				"Czy pojawił się w konsoli tekst: " + tekst,
				"Komunikat",
				JOptionPane.YES_NO_OPTION);
		
		assertEquals("Test wyboru metody wyświetlenia komunikatu błędu", 0, result);
	}

}
